package cn.itheima.edu.info.manger.service;

import cn.itheima.edu.info.manger.dao.StudentDao;
import cn.itheima.edu.info.manger.domain.Student;

import java.util.Scanner;

public class StudentService {
    //成员变量：创建键盘录入对象和创建库管对象
    Scanner sc = new Scanner(System.in);
    StudentDao studentDao = new StudentDao();

    //创建添加方法，传递参数
    public void addStudent(Student student) {
        //调用库管的addStudent方法传递参数
        studentDao.addStudent(student);

    }

    /**
     * 判断用户录入的id是否已经存在
     *
     * @param studentid 传入的学生id
     * @return id是否已经存在
     */

    public boolean isExists(String studentid) {
        //调用库管对象的getstudents方法获取数组容器
        Student[] students = studentDao.getstudents();
        //遍历数组容器，判断容器中的元素是否不为null并且判断id是否存在，存在返回true，否者返回false
        for (int i = 0; i < students.length; i++) {
            if (students[i] != null && students[i].getId().equals(studentid)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 获取学生信息的方法
     *
     * @return 返回一个数组容器或者一个null
     */
    public Student[] findStudent() {
        //1.调用库管的getstudents方法，使用学生类型的数组进行接收
        Student[] students = studentDao.getstudents();
        //对接收到的数组进行遍历，判断数组容器中是否存在有效元素，有则返回数组，没有则返回null
        for (int i = 0; i < students.length; i++) {
            if (students[i] != null) {
                return students;
            }
        }

        return null;
    }

    /**
     * 删除学生信息方法
     * @param studentid 用户要删除的学生id
     */
    public void deleteStudent(String studentid) {
        //调用库管的deleteStudent方法将用户要删除的学生id传递给库管
       studentDao.deleteStudent(studentid);

    }

    /**
     * 修改学生信息方法
     * @param student
     * @param upid
     */
    public void updateStudent(Student student, String upid) {
        //调用库管的updateStudent方法 修改学生信息
        studentDao.updateStudent(student,upid);

    }
}
